package javaInterview;

import java.util.*;

/**
 * 字符串处理问题
 * 
 * 题目描述：
 * 输入一个字符串，删除第三个字符，得到的字符串各字母出现次数均匀分布。
 * 输出满足非严格递增且字典序最小的字符串。
 * 
 * 输入格式：
 * - 第一行输入字符串长度
 * - 第二行输入字符串
 * 
 * 输出格式：
 * - 输出一个字符串，表示满足条件且字典序最小的结果
 */
public class StringProcess {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.nextLine(); // 读取换行符
        String s = scanner.nextLine().trim();
        
        String result = solve(s);
        System.out.println(result);
        
        scanner.close();
    }
    
    /**
     * 解题思路：
     * 尝试删除每个位置的字符，检查是否满足条件：
     * 1. 删除一个字符后，对剩余字符排序
     * 2. 统计各字母的出现次数，检查是否按字母顺序非严格递增
     * 3. 在所有满足条件的方案中，选择排序后字典序最小的
     */
    public static String solve(String s) {
        if (s == null || s.length() <= 1) {
            return "";
        }
        
        String bestResult = null;
        
        // 尝试删除每个位置的字符
        for (int removeIdx = 0; removeIdx < s.length(); removeIdx++) {
            // 删除位置removeIdx的字符
            String after = s.substring(0, removeIdx) + s.substring(removeIdx + 1);
            
            // 对删除后的字符串排序
            char[] chars = after.toCharArray();
            Arrays.sort(chars);
            String sorted = new String(chars);
            
            // 检查是否满足条件（各字母出现次数非严格递增）
            if (isValid(sorted)) {
                // 更新最优结果（字典序最大）
                if (bestResult == null || sorted.compareTo(bestResult) > 0) {
                    bestResult = sorted;
                }
            }
        }
        
        return bestResult == null ? "" : bestResult;
    }
    
    /**
     * 检查字符串是否满足条件：各字母出现次数按字母顺序非严格递增
     */
    private static boolean isValid(String s) {
        // 统计每个字符的出现次数
        int[] count = new int[26];
        for (char c : s.toCharArray()) {
            count[c - 'a']++;
        }
        
        // 检查是否满足非严格递增
        int prevCount = 0;
        for (int i = 0; i < 26; i++) {
            if (count[i] > 0) {
                if (count[i] < prevCount) {
                    return false;
                }
                prevCount = count[i];
            }
        }
        
        return true;
    }
}

